From fe34ee4ff381bf563becea7dd9fd5e2a86df390f Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 19 Mar 2010 23:20:38 -0400 Subject: [PATCH] Avoid spurious notifications from GtkEntry Using gtk_entry_set_buffer() in dispose() causes problematic notifications, so just get rid of the buffer manually. See bug 613241. --- gtk/gtkentry.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index 16b7f2a7cb..20653b4fca 100644 --- a/gtk/gtkentry.c +++ b/gtk/gtkentry.c @@ -2463,12 +2463,19 @@ static void gtk_entry_dispose (GObject *object) { GtkEntry *entry = GTK_ENTRY (object); + GtkEntryPrivate *priv = GTK_ENTRY_GET_PRIVATE (entry); gtk_entry_set_icon_from_pixbuf (entry, GTK_ENTRY_ICON_PRIMARY, NULL); gtk_entry_set_icon_tooltip_markup (entry, GTK_ENTRY_ICON_PRIMARY, NULL); gtk_entry_set_icon_from_pixbuf (entry, GTK_ENTRY_ICON_SECONDARY, NULL); gtk_entry_set_icon_tooltip_markup (entry, GTK_ENTRY_ICON_SECONDARY, NULL); - gtk_entry_set_buffer (entry, NULL); + + if (priv->buffer) + { + buffer_disconnect_signals (entry); + g_object_unref (priv->buffer); + priv->buffer = NULL; + } G_OBJECT_CLASS (gtk_entry_parent_class)->dispose (object); } -- 2.30.2